string maxStr(const vector<int>& v)
{
	vector<string> v_str;
	for (const auto& e : v) {
		v_str.emplace_back(to_string(e));
	}
	std::sort(v_str.begin(), v_str.end(), [](const string& str1, const string& str2)->bool {
		return str1 + str2 > str2 + str1;
		});
	string res = "";
	for (const auto& str : v_str) {
		res += str;
	}
	return res[0] == '0' ? "0" : res;
}

//给定一个字符串，有一个字符存在于这个串中，求这个字符串中的每个字符与这个选的字符间的最短距离
vector<int> ShortToChar(string s, char c)
{
	int size = s.length();
	vector<int> res(size);
	int index = -size;
	for (int i = 0;i < size;++i)
	{
		if (s[i] == c) {
			index = i;
		}
		res[i] = i - index;
	}
	index = -size;
	for (int i = size - 1;i >= 0;--i)
	{
		if (s[i] == c) {
			index = i;
		}
		res[i] = std::min(res[i], i - index);
	}
	return res;
}

//跳跃游戏
class Solution {
public:
    bool canJump(vector<int>& nums) {
        int size =  nums.size();
        int maxPosition = 0;
        for(int i = 0;i < size;++i)
        {
            if(i <= maxPosition)
            {
                maxPosition = std::max(maxPosition,i + nums[i]);
                if(maxPosition >= size - 1)
                {
                    return true;
                }
            }
        }
        return false;
    }
};